package com.szh.cloud.role.repository;

import com.szh.cloud.mybatis.entity.PtRoleEntity;
import com.szh.cloud.mybatis.flexigrid.PagingBean;
import com.szh.cloud.mybatis.ztree.ZtreeEntity;
import com.szh.cloud.role.entity.SearchRoleEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface RoleDao {
    /**
     * 分页查询角色信息
     * @param entity
     * @param paging
     * @return
     */
    List<PtRoleEntity> queryRoleListByPage(@Param("entity") SearchRoleEntity entity, @Param("paging") PagingBean paging);

    /**
     * 查询角色列表总数量
     * @param entity
     * @return
     */
    Integer queryRoleListTotal(@Param("entity")SearchRoleEntity entity);

    /**
     * 查询菜单ztree列表
     * @return
     */
    List<ZtreeEntity> queryMenuZtreeList();

    /**
     * 删除菜单和角色对应
     * @param roleId
     */
    void deleteMenuByRole(@Param("roleId") String roleId);

    /**
     * 保存菜单和角色关系
     * @param roleId
     * @param menuId
     */
    void saveMenuRefRole(@Param("roleId") String roleId,@Param("menuId") String menuId);

    /**
     * 根据角色id查询菜单id
     * @param roleUuid
     * @return
     */
    List<String> queryMenuByRoleId(@Param("roleId") String roleUuid);
    /**
     * 增加角色
     * @param entity
     */
    void addRoleInfo(@Param("entity") PtRoleEntity entity);

    /**
     * 修改角色
     * @param entity
     */
    void modifyRoleInfo(@Param("entity") PtRoleEntity entity);

    /**
     * 删除角色
     * @param roleUuidArray
     */
    void deleteRoleById(@Param("roleUuidArray")String[] roleUuidArray);

    /**
     * 查询菜单列表
     * @param roleUuidArray
     * @return
     */
    List<String> queryMenuListByRoleId(@Param("roleUuidArray") String[] roleUuidArray);
}
